package com.ticket.system.domain.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.util.List;
@ApiModel(description = "下单对象")
public class OrderParamVo {
    @NotNull(message = "价格不可以为空")
    @ApiModelProperty(value = "价格")
    //@DecimalMin(value = "0.01", inclusive = true, message = "价格不能低于0.01")
    private BigDecimal totalMoney;
    @NotNull(message = "场次编码不可以为空")
    @ApiModelProperty(value = "场次编码")
    private Long sessionId;
    @NotNull(message = "演出编码不可以为空")
    @ApiModelProperty(value = "演出编码")
    private Long performId;
    @ApiModelProperty(value = "联系人姓名")
    private String contacts;
    @ApiModelProperty(value = "（联系人）联系方式（手机、电话）")
    private String contactNumber;
    @NotNull(message = "座位信息不可以为空")
    @ApiModelProperty(value = "座位信息")
    private List<SeatVo> seatVos;
    @ApiModelProperty(value = "余额支付金额")
    @DecimalMin("0")
    private BigDecimal balanceAmt = BigDecimal.ZERO;
    @ApiModelProperty(value = "观演卡支付金额")
    @DecimalMin("0")
    private BigDecimal cardAmt = BigDecimal.ZERO;
    @ApiModelProperty(value = "微信支付信息")
    @DecimalMin("0")
    private BigDecimal wechatAmt = BigDecimal.ZERO;

    @ApiModelProperty(value = "观演卡信息")
    private List<CardVo> cardVos;

    @ApiModelProperty(value = "出票类型1团购票 2工作票3赠票 4其他")
    private Integer ticketWay;
    @ApiModelProperty(value = "出票方式 1电子票")
    private Integer ticketOutWay;
    @ApiModelProperty(value = "优惠政策1不使用优惠 2自定义价格 3自定义折扣")
    private Integer discountType;
    @ApiModelProperty(value = "备注", dataType = "string")
    private String ticketDemo;
    @ApiModelProperty(value = "折扣/价格")
    private BigDecimal discountPer;
    @ApiModelProperty(value = "应付")
    private BigDecimal yingfuMoney = BigDecimal.ZERO;

    @ApiModelProperty(value = "减免")
    private BigDecimal discountAmt = BigDecimal.ZERO;

    @ApiModelProperty(value = "购票类型 1小程序购票 2后台出票")
    private Integer ticketType;

    @ApiModelProperty(value = "出票付款 0不支付 1已付款 2欠款")
    private Integer ticketStatus;

    @ApiModelProperty(value = "支付方式 1对公转账2抖音支付 3微信支付 4现金 5其他")
//    @Pattern(regexp ="1|2|3|4|5",message = "支付方式值只能为1到5")
    private Integer payWay;

    @ApiModelProperty(value = "付款备注")
    private String payDemo;

    @ApiModelProperty(value = "其他付款名称")
    private String payName;

    @ApiModelProperty(value = "其他出票类型", dataType = "string")
    private String ticketWayName;

    public String getPayName() {
        return payName;
    }

    public void setPayName(String payName) {
        this.payName = payName;
    }

    public String getPayDemo() {
        return payDemo;
    }

    public void setPayDemo(String payDemo) {
        this.payDemo = payDemo;
    }

    public Integer getTicketType() {
        return ticketType;
    }

    public void setTicketType(Integer ticketType) {
        this.ticketType = ticketType;
    }


    public BigDecimal getYingfuMoney() {
        return yingfuMoney;
    }

    public void setYingfuMoney(BigDecimal yingfuMoney) {
        this.yingfuMoney = yingfuMoney;
    }

    public BigDecimal getDiscountAmt() {
        return discountAmt;
    }

    public void setDiscountAmt(BigDecimal discountAmt) {
        this.discountAmt = discountAmt;
    }


    public Integer getTicketWay() {
        return ticketWay;
    }

    public void setTicketWay(Integer ticketWay) {
        this.ticketWay = ticketWay;
    }

    public Integer getTicketOutWay() {
        return ticketOutWay;
    }

    public void setTicketOutWay(Integer ticketOutWay) {
        this.ticketOutWay = ticketOutWay;
    }

    public Integer getDiscountType() {
        return discountType;
    }

    public void setDiscountType(Integer discountType) {
        this.discountType = discountType;
    }

    public String getTicketDemo() {
        return ticketDemo;
    }

    public void setTicketDemo(String ticketDemo) {
        this.ticketDemo = ticketDemo;
    }

    public BigDecimal getDiscountPer() {
        return discountPer;
    }

    public void setDiscountPer(BigDecimal discountPer) {
        this.discountPer = discountPer;
    }

    public Integer getPayWay() {
        return payWay;
    }

    public void setPayWay(Integer payWay) {
        this.payWay = payWay;
    }

    public List<CardVo> getCardVos() {
        return cardVos;
    }

    public void setCardVos(List<CardVo> cardVos) {
        this.cardVos = cardVos;
    }

    public BigDecimal getBalanceAmt() {
        return balanceAmt;
    }

    public void setBalanceAmt(BigDecimal balanceAmt) {
        this.balanceAmt = balanceAmt;
    }

    public BigDecimal getCardAmt() {
        return cardAmt;
    }

    public void setCardAmt(BigDecimal cardAmt) {
        this.cardAmt = cardAmt;
    }

    public BigDecimal getWechatAmt() {
        return wechatAmt;
    }

    public void setWechatAmt(BigDecimal wechatAmt) {
        this.wechatAmt = wechatAmt;
    }


    public BigDecimal getTotalMoney() {
        return totalMoney;
    }

    public void setTotalMoney(BigDecimal totalMoney) {
        this.totalMoney = totalMoney;
    }

    public Long getSessionId() {
        return sessionId;
    }

    public void setSessionId(Long sessionId) {
        this.sessionId = sessionId;
    }

    public Long getPerformId() {
        return performId;
    }

    public void setPerformId(Long performId) {
        this.performId = performId;
    }

    public String getContacts() {
        return contacts;
    }

    public void setContacts(String contacts) {
        this.contacts = contacts;
    }

    public String getContactNumber() {
        return contactNumber;
    }

    public void setContactNumber(String contactNumber) {
        this.contactNumber = contactNumber;
    }

    public List<SeatVo> getSeatVos() {
        return seatVos;
    }

    public void setSeatVos(List<SeatVo> seatVos) {
        this.seatVos = seatVos;
    }

    public String getTicketWayName() {
        return ticketWayName;
    }

    public void setTicketWayName(String ticketWayName) {
        this.ticketWayName = ticketWayName;
    }

    public Integer getTicketStatus() {
        return ticketStatus;
    }

    public void setTicketStatus(Integer ticketStatus) {
        this.ticketStatus = ticketStatus;
    }
}
